Trend, Seasonality, এবং Residual Analysis হল সময়ের সাথে সাথে পরিবর্তিত ডেটা বিশ্লেষণ করার গুরুত্বপূর্ণ উপাদান। যখন আমরা time series data বিশ্লেষণ করি, তখন আমরা এই উপাদানগুলি ব্যবহার করে ডেটার সাধারণ প্রবণতা, মৌসুমী প্রভাব, এবং অবশিষ্টতা (residuals) বুঝতে পারি। এই বিশ্লেষণগুলি ভবিষ্যদ্বাণী মডেল তৈরি করতে সহায়ক এবং ডেটার প্রকৃত ধরণ এবং আচরণ বোঝায়।
১. Trend Analysis
Trend হল সময়ের সাথে সাথে ডেটার মূল প্রবণতা বা সাধারণ দিকনির্দেশনা। এটি দেখতে হয় যে ডেটা কোথায় যাচ্ছে—এটি যদি উপরের দিকে চলে, নীচের দিকে চলে, বা এটি একটি স্থির স্তরে থাকে। Trend কে আমরা সাধারণত দুটি ক্যাটাগরিতে ভাগ করতে পারিঃ
- Positive Trend: যখন ডেটার মান সময়ের সাথে সাথে বাড়ছে।
- Negative Trend: যখন ডেটার মান সময়ের সাথে সাথে কমছে।
- No Trend: যদি ডেটা কোন প্রবণতা না দেখায় এবং চলমান থাকে।
Trend এর উদাহরণ:
যেমন, কোন কোম্পানির বার্ষিক বিক্রয় যদি বৃদ্ধি পায় তবে এটি একটি positive trend। এর বিপরীত, যদি বিক্রয় কমতে থাকে তবে এটি negative trend।
Trend কীভাবে বিশ্লেষণ করবেন:
- Plotting: টাইম সিরিজ ডেটার একটি প্লট তৈরি করে প্রবণতা সহজেই দেখতে পারেন।
- Decomposition: টাইম সিরিজ ডেটাকে ট্রেন্ড, সিজনালিটি, এবং রেসিডুয়াল কম্পোনেন্টে বিভক্ত করা যায়।
import pandas as pd
import matplotlib.pyplot as plt
# টাইম সিরিজ ডেটা উদাহরণ
data = pd.Series([1, 3, 5, 7, 9, 11, 13, 15, 17, 19],
index=pd.date_range(start='2020-01-01', periods=10, freq='M'))
# প্লট তৈরি করা
data.plot(title="Trend Analysis")
plt.show()
২. Seasonality Analysis
Seasonality হল সময়ের সাথে সাথে পুনরাবৃত্তির নির্দিষ্ট প্যাটার্ন বা সাইকেল যা নির্দিষ্ট সময়ের মধ্যে ঘটে। এটি সাধারনত সিজন, মাস, সপ্তাহ, বা দিন অনুযায়ী পুনরাবৃত্তি হয়। সিজনালিটি বিশেষত ঋতু, ছুটির দিন বা মাসের মধ্যে নির্দিষ্ট প্যাটার্নগুলির কারণে দেখা যায়।
Seasonality এর উদাহরণ:
- দোকানের বিক্রয় যে সময়ে ক্রিসমাস বা সাপ্তাহিক ছুটির দিনগুলির কাছাকাছি থাকে, এটি সিজনাল ডিমান্ড বা সিজনালিটি।
- আবহাওয়ার কারণে গরম মাসে আইসক্রিমের বিক্রি বেশি হতে পারে।
Seasonality কীভাবে বিশ্লেষণ করবেন:
- Decomposition: টাইম সিরিজ ডেটাকে সিজনালিটি, ট্রেন্ড, এবং রেসিডুয়াল কম্পোনেন্টে বিভক্ত করে সিজনাল প্যাটার্ন চিহ্নিত করা যায়।
- Seasonal Plotting: বছরের নির্দিষ্ট সময়ে ডেটার প্যাটার্ন দেখতে গ্রাফ তৈরি করা।
import numpy as np
# সিজনালিটি তৈরি
time = pd.date_range(start='2020-01-01', periods=365, freq='D')
seasonal_data = 10 + 5 * np.sin(2 * np.pi * time.dayofyear / 365) # সিজনাল প্যাটার্ন
# টাইম সিরিজ ডেটা
seasonal_series = pd.Series(seasonal_data, index=time)
# সিজনালিটি গ্রাফ
seasonal_series.plot(title="Seasonality Analysis")
plt.show()
৩. Residual Analysis
Residual হল মূল ডেটা এবং মডেল দ্বারা পূর্বাভাসিত মানের পার্থক্য। এটি মডেলের নির্ভুলতার পরিমাপ এবং এটি আমাদের দেখায় যে মডেলটি ডেটার কোন অংশ ব্যাখ্যা করতে পারেনি। রেসিডুয়াল বিশ্লেষণ মডেল পর্যালোচনার একটি গুরুত্বপূর্ণ অংশ, যেহেতু এটি মডেলটির সঠিকতা এবং প্রভাবগুলি দেখতে সাহায্য করে।
Residual এর উদাহরণ:
- যদি আমরা একটি লিনিয়ার রিগ্রেশন মডেল ব্যবহার করি এবং ভবিষ্যদ্বাণী করি, তবে residual হবে প্রকৃত মান এবং পূর্বাভাসের মধ্যে পার্থক্য।
Residual Analysis কীভাবে করবেন:
- Residual Plot: প্রকৃত মান এবং পূর্বাভাসের মধ্যে পার্থক্য দেখানোর জন্য একটি রেসিডুয়াল প্লট তৈরি করুন।
- Normality: রেসিডুয়ালগুলির স্বাভাবিক বণ্টন পরীক্ষা করুন, যাতে বুঝতে পারা যায় যে মডেলটি ভালভাবে ফিট হয়েছে কি না।
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
# ডেটা
X = np.array([1, 2, 3, 4, 5, 6]).reshape(-1, 1) # ইনপুট ফিচার
y = np.array([2, 4, 5, 4, 5, 6]) # আউটপুট
# ট্রেন-টেস্ট ডেটাতে বিভক্ত
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# মডেল তৈরি
model = LinearRegression()
model.fit(X_train, y_train)
# পূর্বাভাস করা
y_pred = model.predict(X_test)
# রেসিডুয়াল
residuals = y_test - y_pred
# রেসিডুয়াল প্লট
plt.scatter(X_test, residuals)
plt.axhline(0, color='red', linestyle='--')
plt.title('Residual Analysis')
plt.xlabel('X values')
plt.ylabel('Residuals')
plt.show()
সারাংশ
Trend, Seasonality, এবং Residual Analysis হল সময় সিরিজ ডেটার তিনটি গুরুত্বপূর্ণ উপাদান:
- Trend হল ডেটার সময়ের সাথে প্রবণতা বা পরিবর্তন।
- Seasonality হল ডেটার সিজন বা নির্দিষ্ট সময়ের মধ্যে পুনরাবৃত্তি প্যাটার্ন।
- Residual Analysis হল মডেল দ্বারা পূর্বাভাসিত এবং প্রকৃত মানের মধ্যে পার্থক্য, যা মডেল পর্যালোচনার জন্য ব্যবহৃত হয়।
এই বিশ্লেষণগুলির মাধ্যমে আপনি সময় সিরিজ ডেটার গঠন বুঝতে পারেন এবং ভবিষ্যদ্বাণী মডেল তৈরি করতে সক্ষম হোন।
Read more